added samples
[windows-sources.git] / sdk / samples / all in on code / Visual Studio 2008 / VBWPFTwoLevelGrouping / MainWindow.xaml.vb
blob9189410a129978e2fe273c34f6871f6b02217e59
1 '****************************** Module Header ******************************'
2 ' Module Name: MainWindow.xaml.vb
3 ' Project: VBWPFTwoLevelGrouping
4 ' Copyright (c) Microsoft Corporation.
5 '
6 ' The sample demonstrates how to display two level grouped data in WPF.
7 '
8 ' This source is subject to the Microsoft Public License.
9 ' See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
10 ' All other rights reserved.
12 ' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
13 ' EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
14 ' WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
15 '***************************************************************************'
17 Imports System.Collections.ObjectModel
19 ''' <summary>
20 ''' Interaction logic for MainWindow.xaml
21 ''' </summary>
22 Partial Public Class MainWindow
23 Inherits Window
25 Public Sub New()
26 InitializeComponent()
27 End Sub
29 Private _students As ObservableCollection(Of Student)
31 Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
32 ' Set up data source
33 _students = New ObservableCollection(Of Student)()
35 _students.Add(New Student With {.ID = 1, .Name = "Johnson", .Class = "Class A", .Grade = "Grade 1"})
36 _students.Add(New Student With {.ID = 2, .Name = "Bill", .Class = "Class A", .Grade = "Grade 1"})
37 _students.Add(New Student With {.ID = 3, .Name = "Amy", .Class = "Class B", .Grade = "Grade 1"})
38 _students.Add(New Student With {.ID = 4, .Name = "Polo", .Class = "Class B", .Grade = "Grade 1"})
39 _students.Add(New Student With {.ID = 5, .Name = "Shalia", .Class = "Class C", .Grade = "Grade 1"})
40 _students.Add(New Student With {.ID = 6, .Name = "Olay", .Class = "Class C", .Grade = "Grade 1"})
41 _students.Add(New Student With {.ID = 7, .Name = "Sea", .Class = "Class C", .Grade = "Grade 1"})
42 _students.Add(New Student With {.ID = 8, .Name = "Jim", .Class = "Class A", .Grade = "Grade 2"})
43 _students.Add(New Student With {.ID = 9, .Name = "Tim", .Class = "Class A", .Grade = "Grade 2"})
44 _students.Add(New Student With {.ID = 10, .Name = "Bruce", .Class = "Class A", .Grade = "Grade 2"})
45 _students.Add(New Student With {.ID = 11, .Name = "Bockei", .Class = "Class B", .Grade = "Grade 2"})
46 _students.Add(New Student With {.ID = 12, .Name = "Obama", .Class = "Class A", .Grade = "Grade 3"})
47 _students.Add(New Student With {.ID = 13, .Name = "Linkon", .Class = "Class B", .Grade = "Grade 3"})
48 _students.Add(New Student With {.ID = 14, .Name = "Asura", .Class = "Class B", .Grade = "Grade 3"})
49 _students.Add(New Student With {.ID = 15, .Name = "Jack", .Class = "Class C", .Grade = "Grade 3"})
50 _students.Add(New Student With {.ID = 16, .Name = "Rickie", .Class = "Class C", .Grade = "Grade 3"})
52 Dim _csv As New CollectionViewSource()
53 _csv.Source = _students
55 ' Group by Grade and Class
56 _csv.GroupDescriptions.Add(New PropertyGroupDescription("Grade"))
57 _csv.GroupDescriptions.Add(New PropertyGroupDescription("Class"))
59 Me.listView1.DataContext = _csv
60 End Sub
61 End Class
63 Public Class GroupItemStyleSelector
64 Inherits StyleSelector
65 Public Overloads Overrides Function SelectStyle(ByVal item As Object, ByVal container As DependencyObject) As Style
66 Dim s As Style
68 Dim group As CollectionViewGroup = TryCast(item, CollectionViewGroup)
69 Dim window As Window = Application.Current.MainWindow
71 If Not group.IsBottomLevel Then
72 s = TryCast(window.FindResource("GroupHeaderStyleForFirstLevel"), Style)
73 Else
74 s = TryCast(window.FindResource("GroupHeaderStyleForSecondLevel"), Style)
75 End If
77 Return s
78 End Function
79 End Class